package org.jeecg.modules.music.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@TableName("mus_comment")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "mus_comment对象", description = "评论表")
public class MusComment implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 唯一UID
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 用户uid
     */
    private String userUid;

    /**
     * 回复某条评论的uid
     */
    private String toUid;

    /**
     * 该条评论下的，一级评论UID
     */
    private String firstCommentUid;

    /**
     * 回复某个人的uid
     */
    private String toUserUid;

    /**
     * 评论内容
     */
    private String content;

    /**
     * 评论对象的uid
     */
    private String targetUid;

    /**
     * 评论来源： MESSAGE_BOARD，ABOUT，BLOG_INFO 等
     */
    private String source;

    private Integer commentType;

    /**
     * 评论类型： 0: 评论   1: 点赞
     */
    private Integer type;


    /**
     * 本条评论是哪个用户说的
     */
    @TableField(exist = false)
    private MusUser user;

    /**
     * 发表评论的用户名
     */
    @TableField(exist = false)
    private String username;

    /**
     * 被回复的用户名
     */
    @TableField(exist = false)
    private String toUserName;

    /**
     * 本条评论对哪个用户说的，如果没有则为一级评论
     */
    @TableField(exist = false)
    private MusUser toUser;

    /**
     * 本条评论下的回复
     */
    @TableField(exist = false)
    private List<MusComment> replyList;

    /**
     * 本条评论回复的那条评论
     */
    @TableField(exist = false)
    private MusComment toComment;

    /**
     * 评论来源名称
     */
    @TableField(exist = false)
    private String sourceName;

    /**
     * 该评论来源的博客
     */
    @TableField(exist = false)
    private MusSong song;

    /**
     * 该评论来源的博客
     */
    @TableField(exist = false)
    private MusAlbumSong albumSong;

    /**
     * 该评论来源的博客
     */
    @TableField(exist = false)
    private MusTopList topList;

    private Date createTime;

    private Date updateTime;
}
